<!--
 * @Author: 千锋爱佛僧
 * @公众号: 大前端私房菜
 * @Slogan: 千锋精品教程，好学得不像实力派！
-->
<template>
  <div>
    <button @click="wujiLogin">登录无忌</button>
    <button @click="wuji1Login">登录无忌1</button>
    <button @click="handleChat">创建聊天</button>
  </div>
</template>

<script setup lang="ts">
import { realtime } from "../main";
// var Cloud = require("leancloud-storage");
import Cloud from "leancloud-storage";
import { TextMessage, Event } from "leancloud-realtime";
// 以 AVUser 的用户名和密码登录即时通讯服务
let Tom: any; //记录A用户的IMClient对象
const wujiLogin = () => {
  Cloud.User.logIn("wuji", "123") // 这里需要是LeanCloud的_User表中存在的，账号、密码
    .then(async function (user: any) {
      Tom = await realtime.createIMClient(user); //存储A用户IMClient对象
      console.log(Tom);
    })
    .catch(console.error.bind(console));
};

const wuji1Login = () => {
  Cloud.User.logIn("wuji1", "123") // 这里需要是LeanCloud的_User表中存在的，账号、密码
    .then(async function (user: any) {
      let Jerry = await realtime.createIMClient(user);
      //实时接收Tom发送的消息
      Jerry.on(Event.MESSAGE, function (message: any, conversation: any) {
        console.log("Jerry收到了新消息：" + message.text);
      });
    })
    .catch(console.error.bind(console));
};

const handleChat = () => {
  // 创建与 Jerry 之间的对话
  Tom.createConversation({
    // tom 是一个 IMClient 实例
    // 指定对话的成员除了当前用户 Tom（SDK 会默认把当前用户当做对话成员）之外，还有 Jerry
    members: ["641a66769c3cf57aeafd1c7b"], //这里固定写的B客户的objectId，未来可以动态获取好友id
    // 对话名称
    name: "wuji & wuji1",
    unique: true,
  }).then((conversation: any) => {
    conversation
      .send(new TextMessage("Jerry，起床了！")) // Tom用户向Jerry用户发送消息
      .then(function (message: string) {
        console.log("Tom & Jerry", "发送成功！");
      })
      .catch(console.error);
  });
};
</script>

<style scoped></style>
